Memecahkan Masalah Azure Image Builder Service

Berlaku untuk: ✔️ VM Linux ✔️ Set skala fleksibel

Artikel ini membantu Anda memecahkan masalah umum yang mungkin Anda temui saat menggunakan Azure Image Builder Service.

Prasyarat

Saat Anda membuat build, pastikan build Anda memenuhi prasyarat berikut:

  • Layanan Image Builder berkomunikasi dengan build VM menggunakan WinRM atau SSH, JANGAN menonaktifkan pengaturan ini sebagai bagian dari build.
  • Image Builder akan membuat sumber daya sebagai bagian dari build, verifikasi Azure Policy tidak mencegah AIB membuat atau menggunakan sumber daya yang diperlukan.
    • Membuat grup sumber daya IT
    • Membuat akun penyimpanan tanpa firewall
  • Verifikasi Azure Policy tidak memasang fitur yang tidak diinginkan pada build VM seperti Azure Extensions.
  • Pastikan Image Builder memiliki izin yang benar untuk membaca/menulis gambar dan untuk terhubung ke penyimpanan Azure. Harap tinjau dokumentasi izin untuk CLI atau PowerShell.
  • Image Builder akan gagal membangun jika skrip/perintah in-line gagal dengan kesalahan (non-nol kode keluar), pastikan Anda telah menguji dan memverifikasi skrip kustom yang berjalan tanpa kesalahan (kode keluar 0) atau memerlukan input pengguna. Untuk info selengkapnya, lihat dokumentasi berikut.

Kegagalan AIB dapat terjadi di 2 area:

  • Pengiriman Template Gambar
  • Buat Gambar

Memecahkan masalah kesalahan pengiriman template gambar

Kesalahan pengiriman template gambar dikembalikan saat pengiriman saja. Tidak ada log galat untuk kesalahan pengiriman template gambar. Jika ada kesalahan selama pengiriman, Anda dapat mengembalikan kesalahan dengan memeriksa status template, secara khusus meninjau ProvisioningState dan ProvisioningErrorMessage/provisioningError.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage

Catatan

Untuk PowerShell, Anda harus memasang Modul PowerShell Azure Image Builder.

Penting

API 2021-10-01 kami memperkenalkan perubahan pada skema kesalahan yang akan menjadi bagian dari setiap rilis API di masa mendatang. Setiap pelanggan yang telah mengotomatiskan layanan kami harus menerima output kesalahan baru saat beralih ke versi API 2021-10-01 atau yang lebih baru (skema yang baru ditunjukkan di bawah). Sebaiknya setelah pelanggan beralih ke versi API baru (2021-10-01 dan seterusnya), mereka tidak kembali ke versi yang lebih lama karena mereka harus mengubah otomatisasi mereka lagi untuk menerima skema kesalahan yang lama. Kami tidak mengantisipasi perubahan skema kesalahan lagi di rilis mendatang.

Untuk API versi 2020-02-14 dan yang lebih lama, output kesalahan akan terlihat seperti yang berikut:

{
  "code": "ValidationFailed",
  "message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute//images//imageName'. Please review  http://aka.ms/azvmimagebuildertmplref  for details on fields requirements in the Image Builder Template."
}

Untuk API versi 2021-10-01 dan yang lebih baru, output kesalahan akan terlihat seperti yang berikut:

{
  "error": {
    "code": "ValidationFailed",
    "message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute//images//imageName'. Please review  http://aka.ms/azvmimagebuildertmplref  for details on fields requirements in the Image Builder Template."
  }
}

Bagian berikut mencakup panduan resolusi masalah untuk kesalahan pengiriman template gambar umum.

Pembaruan/Peningkatan template gambar saat ini tidak didukung

Kesalahan

'Conflict'. Details: Update/Upgrade of image templates is currently not supported

Penyebab

Template sudah ada.

Solusi

Jika Anda mengirimkan template konfigurasi gambar dan pengiriman gagal, artefak template yang gagal masih ada. Menghapus template yang gagal.

Operasi sumber daya selesai dengan status penyediaan terminal 'Gagal'

Kesalahan

Microsoft.VirtualMachineImages/imageTemplates 'helloImageTemplateforSIG01' failed with message '{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "InternalOperationError",
        "message": "Internal error occurred."

Penyebab

Dalam kebanyakan kasus, kesalahan kegagalan penyebaran sumber daya terjadi karena izin yang hilang.

Solusi

Bergantung pada skenario Anda, Azure Image Builder mungkin memerlukan izin untuk:

  • Gambar sumber atau grup sumber daya Azure Compute Gallery (sebelumnya dikenal sebagai Shared Image Gallery)
  • Gambar distribusi atau sumber daya Azure Compute Gallery
  • Akun penyimpanan, kontainer, atau objek besar biner yang diakses penyesuai File.

Untuk informasi selengkapnya tentang mengonfigurasi izin, lihat Mengonfigurasi izin Layanan Azure Image Builder menggunakan Azure CLI atau Mengonfigurasi izin Azure Image Builder Service menggunakan PowerShell

Kesalahan dalam mendapatkan gambar terkelola

Kesalahan

Build (Managed Image) step failed: Error getting Managed Image '/subscriptions/.../providers/Microsoft.Compute/images/mymanagedmg1': Error getting managed image (...): compute.
ImagesClient#Get: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error.
Status=403 Code="AuthorizationFailed" Message="The client '......' with object id '......' does not have authorization to perform action 'Microsoft.Compute/images/read' over scope 

Penyebab

Izin tidak ada.

Solusi

Bergantung pada skenario Anda, Azure Image Builder mungkin memerlukan izin untuk:

  • Gambar sumber atau grup sumber daya Azure Compute Gallery
  • Gambar distribusi atau sumber daya Azure Compute Gallery
  • Akun penyimpanan, kontainer, atau objek besar biner yang diakses penyesuai File.

Untuk informasi selengkapnya tentang mengonfigurasi izin, lihat Mengonfigurasi izin Layanan Azure Image Builder menggunakan Azure CLI atau Mengonfigurasi izin Azure Image Builder Service menggunakan PowerShell

Tahap build gagal untuk versi gambar

Kesalahan

Build (Shared Image Version) step failed for Image Version '/subscriptions/.../providers/Microsoft.Compute/galleries/.../images/... /versions/0.23768.4001': Error getting Image Version '/subscriptions/.../resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001': Error getting image version '... :0.23768.4001': compute.GalleryImageVersionsClient#Get: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. 
Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001' under resource group '<rgName>' was not found."

Penyebab

Azure Image Builder tidak dapat menemukan gambar sumber.

Solusi

Pastikan gambar sumber sudah benar dan ada di lokasi Azure Image Builder Service.

Mengunduh file eksternal ke file lokal

Kesalahan

Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..

Penyebab

Nama atau lokasi file keliru, atau lokasinya tak bisa dijangkau.

Solusi

Pastikan file tersebut dapat dijangkau. Pastikan nama dan lokasi sudah benar.

Memecahkan masalah kegagalan buat

Untuk kegagalan buat gambar, Anda bisa mendapatkan kesalahan dari lastrunstatus, lalu meninjau detail dalam kustomisasi.log.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage

Log kustomisasi

Saat buat gambar berjalan, log dibuat dan disimpan di akun penyimpanan. Azure Image Builder membuat akun penyimpanan di grup sumber daya sementara saat Anda membuat artefak template gambar.

Nama akun penyimpanan menggunakan pola berikut: IT_<ImageResourceGroupName><TemplateName><GUID>

Misalnya, IT_aibmdi_helloImageTemplateLinux01.

Anda dapat melihat kustomisasi.log di akun penyimpanan di grup sumber daya dengan memilih Akun Azure Storage>Objek Besar Biner>packerlogs. Kemudian pilih direktori >kustomisasi.log.

Memahami log kustomisasi

Log adalah verbose. Mencakup build gambar termasuk masalah pada distribusi gambar, seperti replikasi Azure Compute Gallery. Kesalahan ini muncul dalam pesan kesalahan status template gambar.

Kustomisasi.log mencakup tahapan berikut:

  1. Sebarkan buat VM dan dependensi menggunakan template ARM ke tahap IT_ grup sumber daya pentahapan. Tahap ini mencakup beberapa POSTING ke penyedia sumber daya Azure Image Builder:

    Azure request method="POST" request="https://management.azure.com/subscriptions/<subID>/resourceGroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-cccc-cccc-ccccccc/providers/Microsoft.Storage/storageAccounts
    ..
    PACKER OUT ==> azure-arm: Deploying deployment template ...
    ..
    
  2. Status tahap penyebaran. Tahap ini mencakup status setiap penyebaran sumber daya:

    PACKER ERR 2020/04/30 23:28:50 packer: 2020/04/30 23:28:50 Azure request method="GET" request="https://management.azure.com/subscriptions/<subID>/resourcegroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-4505-ae28-6661e43fac48/providers/Microsoft.Resources/deployments/pkrdp51lc0339jg/operationStatuses/08586133176207523519?[REDACTED]" body=""
    
  3. Hubungkan ke tahap buat VM.

    Jika Windows, Azure Image Builder Service tersambung menggunakan WinRM:

    PACKER ERR 2020/04/30 23:30:50 packer: 2020/04/30 23:30:50 Waiting for WinRM, up to timeout: 10m0s
    ..
    PACKER OUT     azure-arm: WinRM connected.
    

    Jika Linux, Azure Image Builder Service akan terhubung menggunakan SSH:

    PACKER OUT ==> azure-arm: Waiting for SSH to become available...
    PACKER ERR 2019/12/10 17:20:51 packer: 2020/04/10 17:20:51 [INFO] Waiting for SSH, up to timeout: 20m0s
    PACKER OUT ==> azure-arm: Connected to SSH!
    
  4. Jalankan tahap kustomisasi. Saat kustomisasi berjalan, Anda dapat mengidentifikasinya dengan meninjau kustomisasi.log. Cari (telemetri) .

    (telemetry) Starting provisioner windows-update
    (telemetry) ending windows-update
    (telemetry) Starting provisioner powershell
    (telemetry) ending powershell
    (telemetry) Starting provisioner file
    (telemetry) ending file
    (telemetry) Starting provisioner windows-restart
    (telemetry) ending windows-restart
    
    (telemetry) Finalizing. - This means the build hasfinished
    
  5. Tahap de-provisi. Azure Image Builder menambahkan penyesuai tersembunyi. Langkah de-provisi ini bertanggung jawab untuk menyiapkan VM untuk de-provisi. Menjalankan Windows Sysprep (menggunakan c:\DeprovisioningScript.ps1), atau di Linux waagent deprovision (menggunakan /tmp/DeprovisioningScript.sh).

    Contohnya:

    PACKER ERR 2020/03/04 23:05:04 [INFO] (telemetry) Starting provisioner powershell
    PACKER ERR 2020/03/04 23:05:04 packer: 2020/03/04 23:05:04 Found command: if( TEST-PATH c:\DeprovisioningScript.ps1 ){cat c:\DeprovisioningScript.ps1} else {echo "Deprovisioning script [c:\DeprovisioningScript.ps1] could not be found. Image build may fail or the VM created from the Image may not boot. Please make sure the deprovisioning script is not accidentally deleted by a Customizer in the Template."}
    
  6. Bersihkan tahap. Setelah buat selesai, sumber daya Azure Image Builder akan dihapus.

    PACKER ERR ==> azure-arm: Deleting individual resources ...
    ...
    PACKER ERR 2020/02/04 02:04:23 packer: 2020/02/04 02:04:23 Azure request method="DELETE" request="https://management.azure.com/subscriptions/<subId>/resourceGroups/IT_aibDevOpsImg_t_vvvvvvv_yyyyyy-de5f-4f7c-92f2-xxxxxxxx/providers/Microsoft.Network/networkInterfaces/pkrnijamvpo08eo?[REDACTED]" body=""
    ...
    PACKER ERR ==> azure-arm: The resource group was not created by Packer, not deleting ...
    

Tips untuk memecahkan masalah skrip/kustomisasi sebaris

  • Uji kode sebelum memasoknya ke Image Builder
  • Pastikan Azure Policy dan Firewall memungkinkan konektivitas ke sumber daya jarak jauh.
  • Komentar output ke konsol, seperti menggunakan Write-Host atau echo akan memungkinkan Anda untuk mencari kustomisasi.log.

Pemecahan masalah kesalahan buat umum

Kegagalan perintah buat packer

Kesalahan

  "provisioningState": "Succeeded",
  "lastRunStatus": {
   "startTime": "2020-04-30T23:24:06.756985789Z",
   "endTime": "2020-04-30T23:39:14.268729811Z",
   "runState": "Failed",
   "message": "Failed while waiting for packerizer: Microservice has failed: Failed while processing request: Error when executing packerizer: Packer build command has failed: exit status 1. During the image build, a failure has occurred, please review the build log to identify which build/customization step failed. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts. Image Build log location: https://xxxxxxxxxx.blob.core.windows.net/packerlogs/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/customization.log. OperationId: xxxxxx-5a8c-4379-xxxx-8d85493bc791. Use this operationId to search packer logs."

Penyebab

Kegagalan kustomisasi.

Solusi

Tinjau log untuk menemukan kegagalan penyesuai. Cari (telemetri) .

Contohnya:

(telemetry) Starting provisioner windows-update
(telemetry) ending windows-update
(telemetry) Starting provisioner powershell
(telemetry) ending powershell
(telemetry) Starting provisioner file
(telemetry) ending file
(telemetry) Starting provisioner windows-restart
(telemetry) ending windows-restart

(telemetry) Finalizing. - This means the build has finished

Batas waktu terlampaui

Kesalahan

Deployment failed. Correlation ID: xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx. Failed in building/customizing image: Failed while waiting for packerizer: Timeout waiting for microservice to complete: 'context deadline exceeded'

Penyebab

Buat melebihi batas waktu buat. Kesalahan ini terlihat di 'lastrunstatus'.

Solusi

  1. Tinjau kustomisasi.log. Identifikasi penyesuai terakhir yang akan dijalankan. Cari (telemetry) mulai dari bagian bawah log.

  2. Periksa kustomisasi skrip. Kustomisasi mungkin tidak menekan interaksi pengguna untuk perintah, seperti opsi quiet. Misalnya, apt-get install -y menghasilkan eksekusi skrip yang menunggu interaksi pengguna.

  3. Jika Anda menggunakan penyesuai File untuk mengunduh artefak yang lebih besar dari 20 MB, lihat bagian solusi.

  4. Tinjau kesalahan dan dependensi dalam skrip yang dapat menyebabkan skrip menunggu.

  5. Jika Anda mengharapkan bahwa kustomisasi membutuhkan lebih banyak waktu, tingkatkan buildTimeoutInMinutes. Defaultnya adalah empat jam.

  6. Jika Anda memiliki tindakan intensif sumber daya, seperti mengunduh gigabyte file, pertimbangkan ukuran VM buat yang mendasarinya. Layanan ini menggunakan Standard_D1_v2 VM. VM memiliki, 1 vCPU dan 3,5 GB memori. Jika Anda mengunduh 50 GB, ini kemungkinan akan menghabiskan sumber daya VM dan menyebabkan kegagalan komunikasi antara Azure Image Builder Service dan membuat VM. Coba lagi buat dengan VM memori yang lebih besar, dengan mengatur VM_Size.

Waktu pengunduhan file yang lama

Kesalahan

[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT 
myBigFile.zip 826 B / 826000 B  1.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT 
myBigFile.zip 1652 B / 826000 B  2.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT 
..
hours later...
..
myBigFile.zip 826000 B / 826000 B  100.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT 

Penyebab

Penyesuai file sedang mengunduh file besar.

Solusi

Penyesuai file hanya cocok untuk unduhan file kecil yang kurang dari 20 MB. Untuk unduhan file yang lebih besar, gunakan skrip atau perintah sebaris. Misalnya, di Linux, Anda dapat menggunakan wget atau curl. Di Windows, Anda dapat menggunakan Invoke-WebRequest.

Kesalahan

Deployment failed. Correlation ID: XXXXXX-XXXX-XXXXXX-XXXX-XXXXXX. Failed in distributing 1 images out of total 1: {[Error 0] [Distribute 0] Error publishing MDI to Azure Compute Gallery:/subscriptions/<subId>/resourceGroups/xxxxxx/providers/Microsoft.Compute/galleries/xxxxx/images/xxxxxx, Location:eastus. Error: Error returned from SIG client while publishing MDI to Azure Compute Gallery for dstImageLocation: eastus, dstSubscription: <subId>, dstResourceGroupName: XXXXXX, dstGalleryName: XXXXXX, dstGalleryImageName: XXXXXX. Error: Error waiting on Azure Compute Gallery future for resource group: XXXXXX, gallery name: XXXXXX, gallery image name: XXXXXX.Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded}

Penyebab

Image Builder kehabisan waktu menunggu gambar ditambahkan dan direplikasi ke Azure Compute Gallery. Jika gambar disuntikkan ke SIG, dapat diasumsikan buat gambar berhasil. Namun, proses keseluruhan gagal, karena penyusun gambar sedang menunggu Azure Compute Gallery untuk menyelesaikan replikasi. Meskipun buat telah gagal, replikasi berlanjut. Anda bisa mendapatkan properti versi gambar dengan memeriksa runOutput distribusi.

$runOutputName=<distributionRunOutput>
az resource show \
    --ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName"  \
    --api-version=2020-02-14

Solusi

Tingkatkan buildTimeoutInMinutes.

Peristiwa informasi sumber daya Windows rendah

Kesalahan

[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 1% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 51% cpu; 35% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 21% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 21% cpu; 36% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for operation to complete (system performance: 90% cpu; 32% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT     azure-arm: Waiting for the Windows Modules Installer to exit...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'PowerShell -ExecutionPolicy Bypass -OutputFormat Text -File C:/Windows/Temp/packer-windows-update-elevated.ps1' exited with code: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Restarting the machine...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Waiting for machine to become available...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] starting remote command: shutdown.exe -f -r -t 0 -c "packer restart"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'shutdown.exe -f -r -t 0 -c "packer restart"' exited with code: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: A system shutdown is in progress.(1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] starting remote command: shutdown.exe -f -r -t 60 -c "packer restart test"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] command 'shutdown.exe -f -r -t 60 -c "packer restart test"' exited with code: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 Retryable error: Machine not yet available (exit status 1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT Build 'azure-arm' errored: unexpected EOF
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT 

Penyebab

Kelelahan sumber daya. Masalah ini biasanya terlihat dengan Windows Update berjalan menggunakan ukuran VM buat default D1_V2.

Solusi

Memperbesar ukuran VM buat.

Buat selesai tetapi tidak ada artefak yang dibuat

Kesalahan

[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT Build 'azure-arm' errored: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR ==> Some builds didn't complete successfully and had errors:
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT 
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:23 machine readable: azure-arm,error []string{"Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded"}
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT ==> Some builds didn't complete successfully and had errors:
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR ==> Builds finished but no artifacts were created.
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT --> azure-arm: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:23 Cancelling builder after context cancellation context canceled
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT 
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:23 [INFO] (telemetry) Finalizing.
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT ==> Builds finished but no artifacts were created.
[a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER ERR 2020/04/30 22:29:24 waiting for all plugin processes to complete...
Done exporting Packer logs to Azure for Packer prefix: [a170b40d-2d77-4ac3-8719-72cdc35cf889] PACKER OUT

Penyebab

Batas waktu yang disebabkan oleh menunggu sumber daya Azure yang diperlukan untuk dibuat.

Solusi

Jalankan ulang buat untuk mencoba lagi.

Sumber daya tidak ditemukan

Kesalahan

  "provisioningState": "Succeeded",
  "lastRunStatus": {
   "startTime": "2020-05-01T00:13:52.599326198Z",
   "endTime": "2020-05-01T00:15:13.62366898Z",
   "runState": "Failed",
   "message": "network.InterfacesClient#UpdateTags: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code=\"ResourceNotFound\" Message=\"The Resource 'Microsoft.Network/networkInterfaces/aibpls7lz2e.nic.4609d697-be0a-4cb0-86af-49b6fe877fe1' under resource group 'IT_aibImageRG200_window2019VnetTemplate01_9988723b-af56-413a-9006-84130af0e9df' was not found.\""
  },

Penyebab

Izin tidak ada.

Solusi

Periksa ulang Azure Image Builder memiliki semua izin yang diperlukan.

Untuk informasi selengkapnya tentang mengonfigurasi izin, lihat Mengonfigurasi izin Layanan Azure Image Builder menggunakan Azure CLI atau Mengonfigurasi izin Azure Image Builder Service menggunakan PowerShell

Waktu sysprep

Kesalahan

[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while ((Get-Service RdAgent) -and ((Get-Service RdAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Sysprepping VM ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: & $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: while($true) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   Write-Output $imageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm:   Start-Sleep -s 5
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: Write-Output '>>> Sysprep complete ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Waiting for GA Service (RdAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: >>> Sysprepping VM ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_COMPLETE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: Get-Service : Cannot find any service with service name 'WindowsAzureGuestAgent'.
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: At C:\DeprovisioningScript.ps1:6 char:9
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service Window ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:     + CategoryInfo          : ObjectNotFound: (WindowsAzureGuestAgent:String) [Get-Service], ServiceCommandException
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:     + FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT     azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 Cancelling builder after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT Cancelling build after receiving terminated
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling provisioning due to context cancellation: context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: 
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling hook after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...

Penyebab

Penyebabnya mungkin masalah waktu karena ukuran D1_V2 VM. Jika kustomisasi dibatasi dan dijalankan dalam waktu kurang dari tiga detik, perintah sysprep dijalankan oleh Azure Image Builder untuk de-provisi. Ketika Azure Image Builder melakukan de-provisi, perintah sysprep memeriksa WindowsAzureGuestAgent, yang mungkin tidak sepenuhnya dipasang menyebabkan masalah waktu.

Solusi

Memperbesar ukuran VM. Atau, Anda dapat menambahkan kustomisasi tidur PowerShell 60 detik untuk menghindari masalah waktu.

Membatalkan penyusun setelah konteks pembatalan konteks dibatalkan

Kesalahan

PACKER ERR 2020/03/26 22:11:23 Cancelling builder after context cancellation context canceled
PACKER OUT Cancelling build after receiving terminated
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling hook after context cancellation context canceled
..
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling provisioning due to context cancellation: context canceled
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [ERROR] Remote command exited without exit status or exit signal.
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [INFO] RPC endpoint: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] 148974 bytes written for 'stdout'
PACKER ERR 2020/03/26 22:11:25 [INFO] 0 bytes written for 'stderr'
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC client: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC endpoint: Communicator ended with: 2300218

Penyebab

Layanan Image Builder menggunakan port 22(Linux), atau 5986(Windows)untuk terhubung ke buat VM, ini terjadi ketika layanan terputus koneksi dari buat VM selama buat gambar. Alasan pemutusan koneksi dapat bervariasi, tetapi mengaktifkan atau mengonfigurasi firewall dalam skrip dapat memblokir port di atas.

Solusi

Tinjau skrip Anda untuk perubahan/pengaktifan firewall, atau perubahan pada SSH atau WinRM, dan pastikan setiap perubahan memungkinkan konektivitas konstan antara layanan dan membuat VM pada port di atas. Untuk informasi selengkapnya tentang jaringan Image Builder, silakan tinjau persyaratannya.

Kesalahan JWT dalam log di awal build

Kesalahan

Di awal proses build, build gagal dan log menunjukkan kesalahan JWT:

PACKER OUT Error: Failed to prepare build: "azure-arm"
PACKER ERR 
PACKER OUT 
PACKER ERR * client_jwt will expire within 5 minutes, please use a JWT that is valid for at least 5 minutes
PACKER OUT 1 error(s) occurred:

Penyebab

Nilai buildTimeoutInMinutes dalam kerangka diatur ke antara 1 dan 5 menit.

Solusi

Seperti yang dijelaskan dalam Membuat templat Azure Image Builder, batas waktu harus diatur ke 0 untuk menggunakan default atau di atas 5 menit untuk mengambil alih default. Ubah batas waktu dalam templat Anda menjadi 0 untuk menggunakan default atau minimal 6 menit.

Kesalahan penghapusan sumber daya

Kesalahan

Sumber daya perantara dibersihkan menjelang akhir build dan log kustomisasi mungkin menunjukkan beberapa kesalahan penghapusan sumber daya:

PACKER OUT ==> azure-arm: Error deleting resource. Will retry.
...
PACKER OUT ==> azure-arm: Error: network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message=...
...
PACKER ERR 2022/03/07 18:43:06 packer-plugin-azure plugin: 2022/03/07 18:43:06 Retryable error: network.SecurityGroupsClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="InUseNetworkSecurityGroupCannotBeDeleted"...

Penyebab

Pesan log kesalahan ini sebagian besar tidak berbahaya karena penghapusan sumber daya dicoba kembali beberapa kali dan secara umum akhirnya berhasil. Ini dapat diverifikasi dengan terus mengikuti log penghapusan hingga pesan sukses terlihat. Atau, grup sumber daya pementasan dapat diperiksa untuk mengonfirmasi apakah sumber daya telah dihapus atau belum.

[Ini sangat penting dalam kasus kegagalan build di mana pesan kesalahan ini dapat menyebabkan pengamat menyimpulkannya sebagai alasan kegagalan sementara kesalahan sebenarnya ada di tempat lain.]

Tugas DevOps

Pemecahan masalah tugas

Tugas hanya akan gagal jika terjadi kesalahan selama kustomisasi, ketika ini terjadi, tugas akan melaporkan kegagalan dan meninggalkan grup sumber daya pentahapan, dengan log, sehingga Anda dapat mengidentifikasi masalah.

Untuk menemukan log, Anda perlu mengetahui nama template, masuk ke alur >build gagal> ke dalam tugas AIB Azure DevOps, maka Anda akan melihat log dan nama template:

start reading task parameters...
found build at:  /home/vsts/work/r1/a/_ImageBuilding/webapp
end reading parameters
getting storage account details for aibstordot1556933914
created archive /home/vsts/work/_temp/temp_web_package_21475337782320203.zip
Source for image:  { type: 'SharedImageVersion',
  imageVersionId: '/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<galleryName>/images/<imageDefName>/versions/<imgVersionNumber>' }
template name:  t_1556938436xxx

Buka portal, cari nama template di grup sumber daya, lalu cari grup sumber daya dengan IT_*. Buka akun penyimpanan log >blob> kontainer>.

Pemecahan masalah buat yang berhasil

Mungkin ada beberapa kasus di mana Anda perlu menyelidiki buat yang sukses, dan ingin meninjau log. Seperti disebutkan, jika buat gambar berhasil, grup sumber daya pentahapan yang terdiri atas log akan dihapus sebagai bagian dari pembersihan. Namun, hal yang dapat Anda lakukan, adalah memperkenalkan tidur setelah perintah sebaris, lalu mendapatkan log saat buat dijeda. Untuk melakukan ini, ikuti langkah-langkah berikut:

  1. Perbarui perintah sebaris, dan tambahkan: Tulis-Hosting / Echo “Tidur” - akan memungkinkan Anda untuk mencari di log
  2. Tambahkan tidur minimal 10 menit, Anda dapat menggunakan perintah Start-Sleep, atau Sleep Linux.
  3. Gunakan metode di atas untuk mengidentifikasi lokasi log, lalu terus mengunduh/memeriksa log hingga tidur.

Operasi dibatalkan

Kesalahan

2020-05-05T18:28:24.9280196Z ##[section]Starting: Azure VM Image Builder Task
2020-05-05T18:28:24.9609966Z ==============================================================================
2020-05-05T18:28:24.9610739Z Task         : Azure VM Image Builder Test
2020-05-05T18:28:24.9611277Z Description  : Build images using Azure Image Builder resource provider.
2020-05-05T18:28:24.9611608Z Version      : 1.0.18
2020-05-05T18:28:24.9612003Z Author       : Microsoft Corporation
2020-05-05T18:28:24.9612718Z Help         : For documentation, and end to end example, please visit: http://aka.ms/azvmimagebuilderdevops
2020-05-05T18:28:24.9613390Z ==============================================================================
2020-05-05T18:28:26.0651512Z start reading task parameters...
2020-05-05T18:28:26.0673377Z found build at:  d:\a\r1\a\_AppsAndImageBuilder\webApp
2020-05-05T18:28:26.0708785Z end reading parameters
2020-05-05T18:28:26.0745447Z getting storage account details for aibstagstor1565047758
2020-05-05T18:28:29.8812270Z created archive d:\a\_temp\temp_web_package_09737279437949953.zip
2020-05-05T18:28:33.1568013Z Source for image:  { type: 'PlatformImage',
2020-05-05T18:28:33.1584131Z   publisher: 'MicrosoftWindowsServer',
2020-05-05T18:28:33.1585965Z   offer: 'WindowsServer',
2020-05-05T18:28:33.1592768Z   sku: '2016-Datacenter',
2020-05-05T18:28:33.1594191Z   version: '14393.3630.2004101604' }
2020-05-05T18:28:33.1595387Z template name:  t_1588703313152
2020-05-05T18:28:33.1597453Z starting put template...
2020-05-05T18:28:52.9278603Z put template:  Succeeded
2020-05-05T18:28:52.9281282Z starting run template...
2020-05-05T19:33:14.3923479Z ##[error]The operation was canceled.
2020-05-05T19:33:14.3939721Z ##[section]Finishing: Azure VM Image Builder Task

Penyebab

Jika buat tidak dibatalkan oleh pengguna, buat tersebut dibatalkan oleh Agen Pengguna Azure DevOps. Kemungkinan besar batas waktu 1 jam telah terjadi karena kemampuan Azure DevOps. Jika Anda menggunakan proyek dan agen pribadi, Anda mendapatkan 60 menit waktu buat. Jika buat melebihi batas waktu, DevOps membatalkan tugas yang sedang berjalan.

Untuk informasi selengkapnya tentang kemampuan dan batasan Azure DevOps, lihat Agen yang dihosting Microsoft

Solusi

Anda dapat menghosting agen DevOps Anda sendiri, atau melihat untuk mengurangi waktu buat Anda. Misalnya, jika Anda mendistribusikan ke Azure Compute Gallery, replikasikan ke satu wilayah. Jika Anda ingin mereplikasi secara asinkron.

Masuk Windows Lambat: ‘Silakan tunggu Alat Penginstal Modul Windows’

Kesalahan

Setelah Anda membuat gambar Windows 10 dengan Image Builder, lalu membuat VM dari gambar, RDP, dan harus menunggu beberapa menit pada masuk pertama melihat layar biru dengan pesan:

Please wait for the Windows Modules Installer

Solusi

Pertama dalam pemeriksaan buat gambar bahwa tidak ada reboot luar biasa yang diperlukan dengan menambahkan penyesuai Windows Restart sebagai kustomisasi terakhir, dan bahwa semua penginstalan perangkat lunak selesai. Terakhir, tambahkan opsi /mode:vm ke sysprep default yang digunakan AIB, lihat di bawah, ‘VM yang dibuat dari gambar AIB tidak berhasil dibuat’ > ‘Mengesampingkan Perintah’

VM yang dibuat dari gambar AIB tidak berhasil dibuat

Secara default, Azure Image Builder menjalankan kode de-provisi di akhir setiap fase kustomisasi gambar untuk membuat generalisasi gambar. Membuat generalisasi adalah proses di mana gambar disiapkan agar digunakan kembali untuk membuat beberapa VM dan Anda dapat meneruskan pengaturan VM, seperti nama hosting, nama pengguna, dll. Untuk Windows, Azure Image Builder menjalankan Sysprep, dan untuk Linux Azure Image Builder berjalanwaagent -deprovision.

Untuk Windows, Azure Image Builder menggunakan perintah Sysprep generik. Namun, ini mungkin tidak cocok untuk setiap generalisasi Windows yang sukses. Azure Image Builder memungkinkan Anda mengustomisasi perintah Sysprep. Note Azure Image Builder adalah alat automasi gambar. Bertanggung jawab untuk menjalankan perintah Sysprep agar berhasil. Namun, Anda mungkin memerlukan perintah Sysprep yang berbeda untuk membuat gambar Anda dapat digunakan kembali. Untuk Linux, Azure Image Builder menggunakan perintah waagent -deprovision+user generik. Untuk informasi selengkapnya, lihat Dokumentasi Agen Microsoft Azure.

Jika Anda memigrasikan kustomisasi yang ada dan menggunakan perintah Sysprep/waagen yang berbeda, Anda dapat mencoba perintah generik penyusun gambar. Jika pembuatan VM gagal, gunakan perintah Sysprep/waagent Anda sebelumnya.

Catatan

Jika AIB berhasil membuat gambar kustom Windows, dan Anda membuat VM darinya, maka menemukan VM tidak akan berhasil (Misalnya, perintah pembuatan VM tidak selesai/batas waktu), Anda perlu meninjau dokumentasi Windows Server Sysprep. Atau, Anda dapat menaikkan permintaan dukungan dengan tim Dukungan Layanan Pelanggan Windows Server Sysprep, yang dapat memecahkan masalah dan memberi saran tentang perintah Sysprep yang benar.

Lokasi Perintah dan Nama File

Windows:

c:\DeprovisioningScript.ps1

Linux:

/tmp/DeprovisioningScript.sh

Perintah Sysprep: Windows

Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
while ((Get-Service RdAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
while ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Sysprepping VM ...'
if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
  Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
}
& $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
while($true) {
  $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
  Write-Output $imageState
  if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
  Start-Sleep -s 5
}
Write-Output '>>> Sysprep complete ...'

Perintah Deprovisi: Linux

/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync

Mengesampingkan Perintah

Untuk mengambil alih perintah, gunakan pembuat provisi skrip PowerShell atau shell untuk membuat file perintah dengan nama file yang tepat, dan memasukkannya ke dalam direktori yang benar. Azure Image Builder membaca perintah dan output ini ditulis ke kustomisasi.log.

Mendapatkan Dukungan

Jika Anda telah melihat panduan, dan masih tidak dapat memecahkan masalah, Anda dapat membuka kasus dukungan. Saat melakukannya, silakan pilih produk dan topik dukungan yang tepat, melakukan ini akan melibatkan tim dukungan Azure VM Image Builder.

Memilih produk kasus:

Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder

Langkah berikutnya

Untuk mengetahui informasi selengkapnya, lihat ringkasan Azure Image Builder.